/* 循环语句-break 语句 多重循环，演示了使用标记和不使用标记的区别
 *
 * @link: https://www.runoob.com/go/go-break-statement.html
 */

// 包申明
package main

// 引入包
import (
	"fmt"
)

/*
Go 语言中 break 语句用于以下两方面：
   用于循环语句中跳出循环，并开始执行循环之后的语句。
   break 在 switch（开关语句）中在执行一条 case 后跳出语句的作用。
   在多重循环中，可以用标号 label 标出想 break 的循环。
*/
// 入口函数
func main() {
	// 不使用标记
	fmt.Println("---- break ----")
	// 循环 3 次
	for i := 1; i <= 3; i++ {
		fmt.Printf("i: %d\n", i)
		// 设定一个循环,n=3, 但显示一次就退出本次循环
		for i2 := 11; i2 <= 13; i2++ {
			fmt.Printf("i2: %d\n", i2)
			break
		}
	}

	// 使用标记
	fmt.Println("---- break label ----")
re:
	// 循环 3 次
	for i := 1; i <= 3; i++ {
		fmt.Printf("i: %d\n", i)
		// 设定一个循环,n=3, 但显示一次就退出到标签处
		for i2 := 11; i2 <= 13; i2++ {
			fmt.Printf("i2: %d\n", i2)
			break re
		}
	}
}

/*
运行结果:
---- break ----
i: 1
i2: 11
i: 2
i2: 11
i: 3
i2: 11
---- break label ----
i: 1
i2: 11
*/
